Host computers often operate with one or more mass storage devices, such as a hard disk drive or magnetic tape drive, over some sort of communication interface. As is known in the art, both host computers and mass storage devices typically have transceiver capability. Therefore, for purposes of this application, a host computer is also referred to herein as a "receiving device" or as a "sending device". Likewise, a mass storage device is also referred to herein as a "receiving device" or as a "sending device".
Today's communication links, such as the Small Computer Systems Interface (SCSI interface), support high data transfer rates. In order to make use of these high data transfer rates, both host computers and mass storage devices typically include one or more buffer memory devices (buffer memory). The buffer memory is used to receive and temporarily store incoming data at the high data transfer rate supported by the particular communication link being used. After the data is received, it may then be read from the buffer memory and processed. An example of a mass storage device making use of a buffer memory for this purpose can be found in U.S. Pat. No. 4,843,544, entitled Method and Apparatus for Controlling Data transfers Through Multiple Buffers. That Patent is incorporated herein by reference.
In order to efficiently transfer data from a sending device to a receiving device, some communications links (e.g., the SCSI interface) support burst data transfers. A burst data (burst) transfer is a series of data transfers that occurs without an interrupt between one device and another device. A receiving device that is able to receive burst transfers will typically include both a buffer memory and some sort of data management system for managing the burst transfers. The data management system can be used to perform a number of functions. For example, the data management system can determine whether to enable the next transfer of a burst from a sending device. This determination is largely based on whether there is enough space available in the buffer memory of the receiving device to receive the burst without corrupting previously stored data. The data management system could also be used to coordinate the re-transmission and rewriting of a burst into the buffer memory if an originally transmitted burst was determined invalid.
Prior art data management systems for accomplishing these functions include a microprocessor and a software routine, or alternatively a relatively complex state machine. This can result in significant system overhead, thereby reducing the performance level of a receiving device, or alternatively require the need for high cost control circuitry to achieve the desired performance level.